Semantics of programming languages

In programming language theory, semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages and models of computation. The formal semantics of a language is given by a mathematical model that describes the possible computations described by the language.

Contents

Overview

The field of formal semantics encompasses all of the following:

It has close links with other areas of computer science such as programming language design, type theory, compilers and interpreters, program verification and a model checking.

Approaches

There are many approaches to formal semantics; these belong to three major classes:

The distinctions between the three broad classes of approaches can sometimes be vague, but all known approaches to formal semantics use the above techniques, or some combination thereof.

Apart from the choice between denotational, operational, or axiomatic approaches, most variation in formal semantic systems arises from the choice of supporting mathematical formalism.

Variations

Some variations of formal semantics include the following:

Describing relationships

For a variety of reasons, one might wish to describe the relationships between different formal semantics. For example:

It is also possible to relate multiple semantics through abstractions via the theory of abstract interpretation.

See also

Further reading

Textbooks
Lecture notes

External links